home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / AmigaTalk / intuition / Screen.st < prev    next >
Encoding:
Text File  |  2004-01-31  |  4.9 KB  |  249 lines

  1. "---------------------------------------------------------- "
  2. " Screen Class implements control of Amiga Screens          "
  3. " screenModeID = 32-bit display mode ID value               "
  4. " --------------------------------------------------------- "
  5. " NOTE:  The order & number of the Class instance variables "
  6. "        matters to the underlying AmigaTalk code, DO NOT   "
  7. "        CHANGE THEM!                                       "
  8. "---------------------------------------------------------- "
  9.  
  10. Class Screen :Glyph ! private savedTitle screenModeID !
  11. [
  12.    pullScreenUp: numLines    
  13.  
  14.       "numLines <= 0"
  15.       <primitive 180 5 numLines private>
  16. |     
  17.    pushScreenDown: numLines  
  18.  
  19.       "numLines >= 0"
  20.       <primitive 180 6 numLines private>
  21. |     
  22.    redrawScreen
  23.  
  24.       <primitive 180 7 private>
  25. |     
  26.    reOpenScreen
  27.  
  28.       private <- <primitive 180 8 savedTitle>
  29. |
  30.    displayBeep
  31.  
  32.       <primitive 180 4 'DisplayBeep' private>
  33. |
  34.    screenToBack
  35.  
  36.       <primitive 180 4 'ScreenToBack' private>
  37. |
  38.    screenToFront
  39.  
  40.       <primitive 180 4 'ScreenToFront' private>
  41. |
  42.    turnOffTitle
  43.  
  44.       <primitive 180 4 'TurnOffTitle' private>
  45. |
  46.    showTitle
  47.  
  48.       <primitive 180 4 'ShowTitle' private>
  49. |
  50.    setTitle: newTitle
  51.  
  52.       <primitive 180 3 8 newTitle>.
  53.  
  54.       savedTitle <- newTitle
  55. |
  56.    setFont: newFontObject
  57.  
  58.       <primitive 180 3 7 newFontObject>
  59. |
  60.    setBitMap: newBitMapObject
  61.  
  62.       <primitive 180 3 12 newBitMapObject>
  63. |
  64.    getOrigin
  65.  
  66.       ^ <primitive 180 2 0 private> @ <primitive 180 2 1 private>
  67. |
  68.    getScreenSize
  69.  
  70.       ^ <primitive 180 2 2 private> @ <primitive 180 2 3 private>
  71. |
  72.    getScreenPens
  73.  
  74.       ^ <primitive 180 2 4 private> @ <primitive 180 2 5 private>
  75. |
  76.    getFlags
  77.  
  78.       ^ <primitive 180 2 6 private>
  79. |
  80.    getType
  81.  
  82.       ^ <primitive 180 2 11 private>
  83. |
  84.    getViewMode
  85.  
  86.       ^ <primitive 180 2 10 private>
  87. |
  88.    getTitle
  89.  
  90.       ^ savedTitle <- <primitive 180 2 8 private>
  91. |
  92.    getDepth
  93.  
  94.       ^ <primitive 180 2 9 private>
  95. |
  96.    getFontName
  97.  
  98.       ^ <primitive 180 2 7 private>
  99. |
  100.    getFontObject      
  101.  
  102.       ^ <primitive 180 2 13 private>
  103. |    
  104.    getBitMap
  105.  
  106.       ^ <primitive 180 2 12 private> "Returns an Integer (BitMap address)"
  107. |
  108.    getBarHeightSize
  109.  
  110.       ^ <primitive 180 2 14 private>
  111. |         
  112.    getBarVBorderSize
  113.  
  114.       ^ <primitive 180 2 15 private>
  115. |         
  116.    getBarHBorderSize
  117.  
  118.       ^ <primitive 180 2 16 private>
  119. |         
  120.    getMenuVBorderSize
  121.  
  122.       ^ <primitive 180 2 17 private>
  123. |         
  124.    getMenuHBorderSize
  125.  
  126.       ^ <primitive 180 2 18 private>
  127. |         
  128.    getWBorTopSize
  129.  
  130.       ^ <primitive 180 2 19 private>
  131. |         
  132.    getWBorLeftSize
  133.  
  134.       ^ <primitive 180 2 20 private>
  135. |         
  136.    getWBorRightSize
  137.  
  138.       ^ <primitive 180 2 21 private>
  139. |         
  140.    getWBorBottomSize
  141.  
  142.       ^ <primitive 180 2 22 private>
  143. |
  144.    getUserData
  145.  
  146.       ^ <primitive 180 2 23 private>
  147. |
  148.    getVisualInfo: tagArray                 " tagArray can be nil "
  149.  
  150.       ^ <primitive 180 13 tagArray private>
  151. |
  152.    disposeVisualInfo: viObj
  153.  
  154.       <primitive 180 14 viObj>.
  155.       
  156.       <primitive 250 5 0 viObj>.
  157.       
  158.       ^ nil
  159. |
  160.    setScreenPens: pensPoint ! fp bp !
  161.  
  162.       fp <- pensPoint x.
  163.       bp <- pensPoint y.
  164.  
  165.       <primitive 180 3 4 fp>.
  166.       <primitive 180 3 5 bp>
  167. |
  168.    close
  169.       <primitive 180 0 private>.
  170.       
  171.       <primitive 250 5 0 private>.
  172.       
  173.       ^ nil
  174. |
  175.    thisScreen
  176.  
  177.       " Necessary for passing a screen to a tag list (scr thisScreen): "
  178.       ^ private
  179. |
  180.    setScreenModeID: newScreenModeID
  181.  
  182.       screenModeID <- newScreenModeID
  183. |
  184.    getScreenModeID
  185.  
  186.       ^ <primitive 180 2 10 private>
  187. |
  188.    open: screenTitle
  189.  
  190.       private    <- <primitive 180 1 screenModeID screenTitle>.
  191.  
  192.       savedTitle <- screenTitle
  193. |
  194.    new: newScreenModeID
  195.  
  196.       (savedTitle isNil)
  197.          ifTrue: [ savedTitle <- 'Default ScreenTitle' ].
  198.  
  199.       private      <- <primitive 180 1 newScreenModeID savedTitle>.
  200.  
  201.       screenModeID <- newScreenModeID.
  202.  
  203.       ^ self
  204. |
  205.    openScreen: screenMode title: screenTitle
  206.  
  207.       savedTitle <- screenTitle.
  208.  
  209.       self          new: screenMode.
  210.  
  211.       ^ self
  212. |
  213.    openScreenWithTags: tagArray
  214.  
  215.       private <- <primitive 180 9 tagArray>.
  216.  
  217.       self getTitle. " This assumes you included an SA_Title tag! "
  218.       
  219.       ^ self
  220. |
  221.    lockPublicScreen: screenName                       " screenName can be nil "
  222.  
  223.       ^ private <- <primitive 180 11 screenName>
  224. |
  225.    unlockPublicScreen: screenObject named: screenName " screenName can be nil "
  226.  
  227.       <primitive 180 12 screenName screenObject>
  228. |
  229.    getScreenErrorString: errorNumber
  230.  
  231.       ^ <primitive 180 10 errorNumber>
  232. |
  233.    selectAndOpenScreen ! aTitle userMode !
  234.  
  235.       "Show the ScreenMode ASL requester & open selection"
  236.  
  237.       amigatalk setIOMessage: 'What is the Title of the Screen?'. 
  238.       amigatalk setIOTitle:   'Enter a Screen Title:'.
  239.  
  240.       aTitle <- amigatalk getString.
  241.       
  242.       amigatalk setIOTitle:   'Available Screen Modes:'.
  243.       amigatalk setIOMessage: aTitle.
  244.  
  245.       userMode <- amigatalk getScreenModeID.
  246.  
  247.       ^ (self openScreen: userMode title: aTitle)
  248. ]
  249.